`timescale 1ns/1ns

module seq_circuit(
      input                A   ,
      input                clk ,
      input                rst_n,
 
      output   wire        Y   
);
reg Q0;
reg Q1;

always@(posedge clk or negedge rst_n)begin
	if(!rst_n)begin
		Q0<=1'b0;
	end
	else begin
		Q0<=~Q0;
	end
end

always@(posedge clk or negedge rst_n)begin
	if(!rst_n)begin
		Q1<=1'b0;
	end
	else begin
		Q1<=A^Q0^Q1;
	end
end
//D_filp D_filp_0(.D(~Q0),.clk(clk),.rst_n(rst_n),Q(Q0));
//D_filp D_filp_1(.D(A^Q0^Q1),.clk(clk),.rst_n(rst_n),Q(Q1));
assign Y=Q0&Q1;
endmodule

/*
module D_filp(
	input D,
	input clk,
	input rst_n,
	output Q
);
always@(posedge clk or negedge rst_n)begin
    if(!rst_n)begin
		Q<=1'b0;
	end
	else begin
		Q<=D;
	end
end

endmodule
*/